protection when building vmxassist/hvmloader.
Signed-off-by: Keir Fraser <keir@xensource.com>
#
XEN_ROOT = ../../..
-include $(XEN_ROOT)/tools/Rules.mk
+include $(XEN_ROOT)/Config.mk
# The HVM loader is started in 32-bit mode at the address below:
LOADADDR = 0x100000
OBJECTS = hvmloader.o acpi_madt.o
-CC = gcc
+# Disable PIE/SSP if GCC supports them. They can break us.
+CFLAGS += $(call test-gcc-flag,$(CC),-nopie)
+CFLAGS += $(call test-gcc-flag,$(CC),-fno-stack-protector)
+CFLAGS += $(call test-gcc-flag,$(CC),-fno-stack-protector-all)
+
OBJCOPY = objcopy
-CFLAGS = $(DEFINES) -I. $(XENINC) -Wall -fno-builtin -O2 -msoft-float
+CFLAGS += $(DEFINES) -I. $(XENINC) -Wall -fno-builtin -O2 -msoft-float
CFLAGS += -m32 -march=i686
LDFLAGS = -m32 -nostdlib -Wl,-N -Wl,-Ttext -Wl,$(LOADADDR)
CC = gcc
-CFLAGS = -g -O2 -Wall -Wstrict-prototypes
-LDFLAGS =
GCC = gcc
BCC = bcc
#
XEN_ROOT = ../../..
-include $(XEN_ROOT)/tools/Rules.mk
+include $(XEN_ROOT)/Config.mk
# The emulator code lives in ROM space
TEXTADDR=0x000D0000
DEFINES=-DDEBUG -DTEXTADDR=$(TEXTADDR)
XENINC=-I$(XEN_ROOT)/tools/libxc
-LD = ld
-CC = gcc
+# Disable PIE/SSP if GCC supports them. They can break us.
+CFLAGS += $(call test-gcc-flag,$(CC),-nopie)
+CFLAGS += $(call test-gcc-flag,$(CC),-fno-stack-protector)
+CFLAGS += $(call test-gcc-flag,$(CC),-fno-stack-protector-all)
+
CPP = cpp -P
OBJCOPY = objcopy -p -O binary -R .note -R .comment -R .bss -S --gap-fill=0
-CFLAGS = $(DEFINES) -I. $(XENINC) -Wall -fno-builtin -O2 -msoft-float
+CFLAGS += $(DEFINES) -I. $(XENINC) -Wall -fno-builtin -O2 -msoft-float
CFLAGS += -m32 -march=i686
LDFLAGS = -m elf_i386
+XEN_ROOT=../..
+include $(XEN_ROOT)/tools/Rules.mk
+
-include config-host.mak
-CFLAGS=-Wall -O2 -g -fno-strict-aliasing
+CFLAGS+=-Wall -O2 -g -fno-strict-aliasing
ifdef CONFIG_DARWIN
CFLAGS+= -mdynamic-no-pic
endif
-XEN_ROOT=../../..
-include $(XEN_ROOT)/tools/Rules.mk
include config.mak
override TARGET_ARCH=i386
+XEN_ROOT=../../..
+include $(XEN_ROOT)/tools/Rules.mk
+
INSTALL_DIR := $(DESTDIR)/usr/$(LIBDIR)/xen/bin
TARGET_PATH=$(SRC_PATH)/target-$(TARGET_ARCH)
VPATH=$(SRC_PATH):$(TARGET_PATH):$(SRC_PATH)/hw:$(SRC_PATH)/audio
VPATH+=:$(SRC_PATH)/linux-user
DEFINES+=-I$(SRC_PATH)/linux-user -I$(SRC_PATH)/linux-user/$(TARGET_ARCH)
endif
-CFLAGS=-Wall -O2 -g -fno-strict-aliasing
+CFLAGS+=-Wall -O2 -g -fno-strict-aliasing
LDFLAGS=-g
LIBS=
HELPER_CFLAGS=$(CFLAGS)
TARGET := test_x86_emulator
-CC := gcc
-CFLAGS := -O2 -Wall -Werror -D__TEST_HARNESS__
+HOSTCFLAGS += -D__TEST_HARNESS__
all: $(TARGET)
$(TARGET): x86_emulate.o test_x86_emulator.o
- $(CC) -o $@ $^
+ $(HOSTCC) -o $@ $^
clean:
rm -rf $(TARGET) *.o *~ core
install:
x86_emulate.o: $(XEN_ROOT)/xen/arch/x86/x86_emulate.c
- $(CC) $(CFLAGS) -I$(XEN_ROOT)/xen/include -c -o $@ $<
+ $(HOSTCC) $(HOSTCFLAGS) -I$(XEN_ROOT)/xen/include -c -o $@ $<
%.o: %.c
- $(CC) $(CFLAGS) -I$(XEN_ROOT)/xen/include -c -o $@ $<
+ $(HOSTCC) $(HOSTCFLAGS) -I$(XEN_ROOT)/xen/include -c -o $@ $<